Many companies and other geographically distributed organizations operate wide area networks. Such networks typically use long-distance links to connect a number of geographically separate local area networks, which in turn each connect a group of geographically clustered computer systems, such as those in the same building or on the same campus.
FIG. 1 is a network diagram depicting a typical wide area network. It shows that the wide area network comprises six different local area networks 110, 120, 130, 140, 150, and 160. Pairs of these local area networks are connected in the wide area network by long-distance links: local area networks 110 and 130 are connected by link 181, local area networks 110 and 140 are connected by link 182, and local area networks 110 and 150 are connected by link 183. Such links may be operated by the organization, or be operated by another company to transmit data on the organization's behalf. Because local area networks 110 and 120 geographically proximal, their connection does not require a long-distance link. They are instead connected by a gateway 171. Local area networks 150 and 160 are also geographically proximal, and are connected by gateway 172.
Many of the local area networks contain server computer systems ("servers"), shown as squares. For example, local area network 110 contains server 111. The servers preferably provide resources, such as the capacity to execute application programs or download application programs and data, to client computer systems ("clients"), shown as triangles (e.g., clients 112 in local area network 110). Utilization by a client of a server's resources generally requires communication between the client and the server. For example, use by a client of a server's capacity to download an application program generally requires the client to transmit a request for the application program to the server, and the server to transmit a reply to the client containing the data comprising the requested application program.
For a particular client, this communication required to use resources of a server has varying financial, performance, and/or congestion costs depending on which server is selected. As a result, selection of a server by a client can have significant consequences. For example, consider one of the clients 112 in local area network 110. For this client, using resources on server 111, which is also in local area network 110, has low performance, financial, and congestion costs: because local area networks are relatively fast, the necessary data is communicated quickly; because the organization owns the local area network, no financial marginal cost is incurred in such communication; and because the local area network 110 has ample capacity, no congestion cost is incurred. In contrast, using servers 121, 131, 141, and 151 has greater performance, financial, and congestion costs. Use by one of the clients 112 of server 131 in local area network 130 may incur significant financial cost if link 181 is not owned by the organization and the organization is charged to transmit data across link 181. Use by one of the clients 112 of server 141 in local area network 140 may incur significant performance cost if local area network 140 is geographically distant from local area network 110, causing a long propagation delay for transmitting data across link 182. A significant performance cost may also be incurred in using server 151 in local area network 150 if link 183 has a low data transmission rate, causing a low throughput rate for the transmitted data. Finally, while using server 121 in local area network 120 may have not have direct financial or performance costs, it may create congestion in gateway 171, indirectly imposing performance costs on other users if use of the gateway by one of the clients 112 delays use of the gateway by other clients 112 or by clients 122. It can therefore be seen that, because of higher financial, performance, and/or congestion costs incurred by using servers 121, 131, 141, and 151, use of server 111 by one of the clients 112 would generally be preferred.
Unfortunately, in some wide area networks, the best available server on which to use resources is not explicitly identified to each client. As a result, clients may choose to use the resources of a distant server, in many cases incurring a significant financial, time, or congestion cost. In some cases, clients may fail to identify any available server whose resources they can use, rendering such clients unable to utilize the resources at any cost.
In view of these shortcomings, a facility capable of inferring the identity of a preferred server for each of the clients would have significant utility.